home *** CD-ROM | disk | FTP | other *** search
/ Borland JBuilder 6 / jbuilder6.iso / IBM VisualAge for Java Enterprise v4.0 Retail / ivj40 / setup / IDE.Cab / F77614_CBSmartGuideNotebookUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-04-25  |  8.4 KB  |  288 lines

  1. package com.ibm.ivb.sguides.cb;
  2.  
  3. import com.ibm.ivb.sguides.SmartGuidePage;
  4. import com.ibm.ivb.sguides.basic.BasicSmartGuideNotebookUI;
  5. import java.awt.Color;
  6. import java.awt.Component;
  7. import java.awt.Container;
  8. import java.awt.Dimension;
  9. import java.awt.Font;
  10. import java.awt.FontMetrics;
  11. import java.awt.Graphics;
  12. import java.awt.Image;
  13. import java.awt.LayoutManager;
  14. import java.awt.MediaTracker;
  15. import java.awt.Point;
  16. import java.awt.Rectangle;
  17. import java.awt.Toolkit;
  18. import java.awt.image.ImageObserver;
  19. import java.awt.image.MemoryImageSource;
  20. import javax.swing.Icon;
  21. import javax.swing.JComponent;
  22. import javax.swing.SwingUtilities;
  23. import javax.swing.UIManager;
  24. import javax.swing.border.Border;
  25. import javax.swing.plaf.ComponentUI;
  26.  
  27. public class CBSmartGuideNotebookUI extends BasicSmartGuideNotebookUI implements LayoutManager {
  28.    private static final String kCBIBMCopyright = "(c) Copyright IBM Corporation 1998";
  29.    protected static Font tfont;
  30.    protected static Color tcolor = new Color(0, 0, 128);
  31.    protected static Icon navIcon = new NavButtonIcon();
  32.    protected static Border navBorder = new NavButtonBorder();
  33.    protected int thgap = 4;
  34.    protected NavButton navButton;
  35.    protected Color nscolor = (Color)UIManager.get("Panel.foreground");
  36.    protected int firstPage;
  37.    protected int lastPage = -1;
  38.    Image dimage;
  39.    // $FF: renamed from: c java.awt.Component
  40.    static Component field_0 = new 1();
  41.    // $FF: renamed from: mt java.awt.MediaTracker
  42.    MediaTracker field_1;
  43.  
  44.    public CBSmartGuideNotebookUI() {
  45.       this.field_1 = new MediaTracker(field_0);
  46.       super.titleEnabled = true;
  47.       super.descEnabled = true;
  48.    }
  49.  
  50.    protected Dimension calculateSize() {
  51.       int var1 = 0;
  52.       int var2 = 0;
  53.  
  54.       for(int var3 = 0; var3 < super.sgbook.getPageCount(); ++var3) {
  55.          SmartGuidePage var4 = super.sgbook.getPageAt(var3);
  56.          Component var5 = var4.getClient();
  57.          Dimension var6 = new Dimension(0, 0);
  58.          Dimension var7 = new Dimension(0, 0);
  59.          if (var5 != null) {
  60.             var6 = var5.getPreferredSize();
  61.          }
  62.  
  63.          Icon var8 = var4.getIcon();
  64.          if (var8 != null && var4.getIconMode()) {
  65.             var7 = new Dimension(var8.getIconWidth(), var8.getIconHeight());
  66.          }
  67.  
  68.          int var9 = BasicSmartGuideNotebookUI.cinsets.left + var6.width + BasicSmartGuideNotebookUI.cinsets.right;
  69.          int var10 = BasicSmartGuideNotebookUI.cinsets.top + var6.height + BasicSmartGuideNotebookUI.cinsets.bottom;
  70.          int var11 = 3;
  71.          var11 += super.title.getPreferredSize().height + this.thgap + this.thgap;
  72.          int var12 = 0;
  73.          super.desc.setSize(var6.width, 0);
  74.          var12 = super.desc.getPreferredHeight(var6.width, var4.getDescription());
  75.          var12 += BasicSmartGuideNotebookUI.cinsets.top;
  76.          int var13 = 0;
  77.          if (var7.width > 0) {
  78.             var13 = BasicSmartGuideNotebookUI.imageInsets.left + var7.width + BasicSmartGuideNotebookUI.imageInsets.right;
  79.          }
  80.  
  81.          var1 = Math.max(var9 + var13, var1);
  82.          var2 = Math.max(var10 + var11 + var12, var2);
  83.       }
  84.  
  85.       var1 = Math.max(var1, 600);
  86.       var2 = Math.max(var2, 400);
  87.       return new Dimension(var1, var2);
  88.    }
  89.  
  90.    public static ComponentUI createUI(JComponent var0) {
  91.       return new CBSmartGuideNotebookUI();
  92.    }
  93.  
  94.    protected Font getTitleFont() {
  95.       if (tfont == null) {
  96.          tfont = new Font("SansSerif", 0, 14);
  97.       }
  98.  
  99.       return tfont;
  100.    }
  101.  
  102.    private int getTitleWidth() {
  103.       FontMetrics var1 = field_0.getFontMetrics(tfont);
  104.       int var2 = 0;
  105.  
  106.       for(int var3 = 0; var3 < super.sgbook.getPageCount(); ++var3) {
  107.          SmartGuidePage var4 = super.sgbook.getPageAt(var3);
  108.          String var5 = var4.getTitle();
  109.          int var6 = var1.stringWidth(var5);
  110.          var2 = Math.max(var6, var2);
  111.       }
  112.  
  113.       return var2;
  114.    }
  115.  
  116.    public void installUI(JComponent var1) {
  117.       super.installUI(var1);
  118.       this.navButton = new NavButton(this, super.sgbook);
  119.       this.navButton.setHorizontalAlignment(2);
  120.       ((Container)var1).add(this.navButton);
  121.       var1.setBorder((Border)null);
  122.       BasicSmartGuideNotebookUI.cinsets.top = 10;
  123.       BasicSmartGuideNotebookUI.cinsets.left = 10;
  124.       BasicSmartGuideNotebookUI.cinsets.bottom = 10;
  125.       BasicSmartGuideNotebookUI.cinsets.right = 10;
  126.       super.title.setForeground(tcolor);
  127.    }
  128.  
  129.    public void layoutContainer(Container var1) {
  130.       Dimension var2 = ((Component)var1).getSize();
  131.       Rectangle var3 = new Rectangle(var2);
  132.       Icon var4 = (Icon)super.sgbook.getSmartGuide().getClientProperty("CommonIcon");
  133.       int var5 = var4 != null ? var4.getIconWidth() : 20;
  134.       if (super.icon == null) {
  135.          var5 = 0;
  136.       }
  137.  
  138.       boolean var6 = false;
  139.       int var7 = 0;
  140.       if (super.icon != null) {
  141.          var7 = BasicSmartGuideNotebookUI.imageInsets.left + super.icon.getIconWidth() + BasicSmartGuideNotebookUI.imageInsets.right;
  142.       }
  143.  
  144.       int var8 = var3.width - var7;
  145.       Component var9 = super.prevPage != null ? super.prevPage.getClient() : null;
  146.       Component var10 = super.currPage != null ? super.currPage.getClient() : null;
  147.       if (var9 != null && var9.getParent() == null && var10 != null && SwingUtilities.findFocusOwner(var9) != null) {
  148.          var6 = true;
  149.       }
  150.  
  151.       int var11 = var8 - BasicSmartGuideNotebookUI.cinsets.left - BasicSmartGuideNotebookUI.cinsets.right;
  152.       int var12 = var3.width - BasicSmartGuideNotebookUI.cinsets.left - BasicSmartGuideNotebookUI.cinsets.right - var5;
  153.       int var13 = 1;
  154.       int var14 = super.title.getPreferredSize().height + this.thgap + this.thgap;
  155.       int var15 = BasicSmartGuideNotebookUI.cinsets.left;
  156.       if (super.currPage != null && super.currPage.isNavigationButtonVisible()) {
  157.          int var16 = this.navButton.getPreferredSize().width;
  158.          this.navButton.setVisible(true);
  159.          int var17 = this.getTitleWidth() + var16 + 5 + 5;
  160.          this.navButton.setSize(var17, var14 - 2);
  161.          this.navButton.setLocation(var15, var13 + var14 / 2 - this.navButton.getHeight() / 2);
  162.          var15 += var16 + 5;
  163.          this.navButton.setPopupLocation(new Point(BasicSmartGuideNotebookUI.cinsets.left, var13 + var14 + 2));
  164.          super.title.setForeground(tcolor);
  165.       } else {
  166.          this.navButton.setVisible(false);
  167.          super.title.setForeground(this.nscolor);
  168.       }
  169.  
  170.       super.title.setSize(var11, super.title.getPreferredSize().height);
  171.       super.title.setLocation(var15, var13 + this.thgap);
  172.       var13 += super.title.getHeight() + this.thgap + this.thgap + 2;
  173.       super.desc.setSize(var12, super.desc.getPreferredHeight(var12));
  174.       var13 += BasicSmartGuideNotebookUI.cinsets.top;
  175.       super.desc.setLocation(BasicSmartGuideNotebookUI.cinsets.left + var3.x, var13);
  176.       var13 += super.desc.getSize().height + BasicSmartGuideNotebookUI.cinsets.top;
  177.       if (var10 != null) {
  178.          var10.setLocation(var3.x + BasicSmartGuideNotebookUI.cinsets.left, var13 + BasicSmartGuideNotebookUI.cinsets.top);
  179.          var10.setSize(var3.width - var7 - BasicSmartGuideNotebookUI.cinsets.left - BasicSmartGuideNotebookUI.cinsets.right, var3.height - (var13 - var3.y) - BasicSmartGuideNotebookUI.cinsets.top - BasicSmartGuideNotebookUI.cinsets.bottom);
  180.          var10.setVisible(true);
  181.          var10.validate();
  182.          if (var6) {
  183.             ((BasicSmartGuideNotebookUI)this).transferFocusTo(var10);
  184.          }
  185.       }
  186.  
  187.    }
  188.  
  189.    protected Image makeDitherImage(String var1, int var2, int var3) {
  190.       if (this.dimage != null && this.dimage.getWidth((ImageObserver)null) == var2 && this.dimage.getHeight((ImageObserver)null) == var3) {
  191.          return this.dimage;
  192.       } else {
  193.          int[] var4 = new int[var2 * var3];
  194.          int var5 = 0;
  195.          Color var6 = super.sgbook.getBackground();
  196.          int var7 = var6.getRed() + 1;
  197.          int var8 = var6.getGreen() + 1;
  198.          int var9 = var6.getBlue() + 1;
  199.          byte var10 = 20;
  200.          byte var11 = 44;
  201.          byte var12 = 120;
  202.          boolean var13 = true;
  203.          int var14 = var10 - var7;
  204.          int var15 = var11 - var8;
  205.          int var16 = var12 - var9;
  206.          double var17 = (double)(var2 * var2);
  207.  
  208.          for(int var19 = 0; var19 < var3; ++var19) {
  209.             for(int var20 = 0; var20 < var2; ++var20) {
  210.                double var24 = (double)(var20 * var20);
  211.                byte var26 = 5;
  212.                double var27 = var24 / var17;
  213.                int var21 = (int)(var27 * (double)var14) + var7;
  214.                int var22 = (int)(var27 * (double)var15) + var8;
  215.                int var23 = (int)(var27 * (double)var16) + var9;
  216.                int var29 = var26 + var26;
  217.                var21 += (int)((double)var29 * Math.random() - (double)var26);
  218.                var22 += (int)((double)var29 * Math.random() - (double)var26);
  219.                var23 += (int)((double)var29 * Math.random() - (double)var26);
  220.                var21 = Math.min(Math.max(0, var21), 255);
  221.                var22 = Math.min(Math.max(0, var22), 255);
  222.                var23 = Math.min(Math.max(0, var23), 255);
  223.                var4[var5++] = -16777216 | var21 << 16 | var22 << 8 | var23;
  224.             }
  225.          }
  226.  
  227.          Image var31 = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(var2, var3, var4, 0, var2));
  228.          this.field_1.addImage(var31, 0);
  229.  
  230.          try {
  231.             this.field_1.waitForID(0);
  232.          } catch (InterruptedException var30) {
  233.             return null;
  234.          }
  235.  
  236.          this.field_1.removeImage(var31);
  237.          this.dimage = var31;
  238.          return var31;
  239.       }
  240.    }
  241.  
  242.    public void paint(Graphics var1, JComponent var2) {
  243.       Dimension var3 = ((Component)var2).getSize();
  244.       Rectangle var4 = new Rectangle(var3);
  245.       int var5 = BasicSmartGuideNotebookUI.imageInsets.left + BasicSmartGuideNotebookUI.imageInsets.right;
  246.       if (super.icon != null) {
  247.          var5 += super.icon.getIconWidth();
  248.       }
  249.  
  250.       int var6 = var4.x + var4.width - var5;
  251.       int var7 = super.title.getY() + super.title.getHeight() + this.thgap;
  252.       int var8 = super.desc.getY() + super.desc.getHeight() + BasicSmartGuideNotebookUI.cinsets.top;
  253.       SmartGuidePage var9 = super.sgbook.getCurrentPage();
  254.       Color var10 = ((Component)var2).getBackground();
  255.       Icon var11 = (Icon)super.sgbook.getSmartGuide().getClientProperty("CommonIcon");
  256.       int var12 = this.thgap + super.title.getHeight() + this.thgap;
  257.       int var13 = var4.width;
  258.       int var14 = var13 / 5;
  259.       var13 -= var14 + 1;
  260.       Image var15 = this.makeDitherImage(var9.toString(), var13, var12);
  261.       if (var15 != null) {
  262.          var1.drawImage(var15, var14, 1, (ImageObserver)null);
  263.       }
  264.  
  265.       var1.setColor(var10.darker());
  266.       var1.drawLine(1, var7, var3.width - 2, var7);
  267.       var1.setColor(var10.brighter());
  268.       var1.drawLine(1, 0, var3.width - 2, 0);
  269.       var1.drawLine(1, var7 + 1, var3.width - 2, var7 + 1);
  270.       if (var11 != null) {
  271.          byte var16 = 2;
  272.          int var17 = var3.width - var16 - var11.getIconWidth();
  273.          byte var18 = 1;
  274.          var11.paintIcon(var2, var1, var17, var18);
  275.       }
  276.  
  277.       if (super.icon != null) {
  278.          int var20 = var4.height - var8;
  279.          super.icon.paintIcon(var2, var1, var6 + BasicSmartGuideNotebookUI.imageInsets.left, var8 + var20 / 2 - super.icon.getIconHeight() / 2);
  280.       }
  281.  
  282.    }
  283.  
  284.    public void uninstallUI(JComponent var1) {
  285.       super.uninstallUI(var1);
  286.    }
  287. }
  288.